//Random Game Engine
//Copyright (C) 2013  Nikolay Dionisov

//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.

//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.

//You should have received a copy of the GNU General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.



#ifndef __MANAGER_CONTAINER__H_INCLUDED__
#define __MANAGER_CONTAINER__H_INCLUDED__


#include "Environment Manager\EnvironmentManager.h"
#include "Service Manager\ServiceManager.h"
#include "Task Manager\TaskManager.h"
#include "State Manager\StateManager.h"

namespace re
{
	namespace core
	{
		class ManagerContainer
		{
		public:
			ManagerContainer() : environment_manager(0),
								state_manager(0), task_manager(0) {}
			~ManagerContainer() {
				if(environment_manager != NULL)
				{
					delete environment_manager;
				}
				if(task_manager != NULL)
				{
					delete task_manager;
				}
				if(state_manager != NULL)
				{
					delete state_manager;
				}
			}

			EnvironmentManager * environment_manager;
			ITaskManager* task_manager;
			IStateManager* state_manager;
		};
	}
}

#endif